//! mtval 中保存异常特定的信息，用于 trap 时辅助软件处理 trap。
//! 具体信息一般由硬件平台说明。
//! 
//! 如果发生 breakpoint, address-misaligned, access-fault 或者 page-fault 异常，
//! mtval 中的非 0 值为发生异常时的虚拟地址（可以是变长指令的一部分，此时 mepc 指向指令的开头）

use crate::csrr;

pub fn read() -> usize {
    csrr!(mtval)
}
